//对axios二次封装
import store from '@/store';
import axios from 'axios';
import nprogress from 'nprogress'
import 'nprogress/nprogress.css'
//利用axios的对象方法create，去创建一个axios实例
const requests = axios.create({
    //配置对象
    baseURL: '/api',//基础路径，在发请求的路径上都加上'/api'
    timeout: 5000//请求超时时间5s
})

//请求拦截器
requests.interceptors.request.use((config) => {
    //发起请求时请求头携带id
    //如果有uuid就携带
    if (localStorage.getItem('UUIDTOKEN')) {
        //请求头添加一个字段，和后台指定的
        config.headers.userTempId = localStorage.getItem('UUIDTOKEN')
    }
    //如果有token也携带
    if (store.state.user.token) {
        config.headers.token = store.state.user.token
    }
    nprogress.start()
    return config
})

//响应拦截器
requests.interceptors.response.use((res) => {
    //成功的回调函数
    nprogress.done()
    return res.data
}, (error) => {
    //响应失败的回调
    return Promise.reject(new Error('faile'))
})

//对外暴露我们修改过的axios对象
export default requests;